#!/usr/bin/env python3
# -*- coding: utf-8 -*-

"""
运行此脚本禁用matplotlib字体缓存构建消息
"""

import os
import sys

def main():
    """主函数"""
    print("预构建Matplotlib字体缓存...")
    
    # 创建缓存目录
    cache_dir = os.path.join(os.path.dirname(os.path.dirname(os.path.abspath(__file__))), 
                            "assets", "matplotlib_cache")
    os.makedirs(cache_dir, exist_ok=True)
    
    # 设置环境变量以禁用字体缓存构建消息
    os.environ['MPLCONFIGDIR'] = cache_dir
    
    # 导入matplotlib并配置
    import matplotlib
    matplotlib.use('Agg')  # 使用非交互式后端
    
    # 强制重建字体缓存 - 使用正确的方法
    from matplotlib import font_manager
    font_manager.findfont('Arial')  # 触发字体缓存构建
    
    # 验证缓存是否创建
    if os.path.exists(os.path.join(cache_dir, 'fontlist-v330.json')) or \
       os.path.exists(os.path.join(cache_dir, 'fontlist-v310.json')) or \
       os.path.exists(os.path.join(cache_dir, '.matplotlib-font-cache')):
        print(f"字体缓存成功创建于: {cache_dir}")
    else:
        print(f"警告: 字体缓存可能未创建于 {cache_dir}")
        # 列出目录内容以检查
        print(f"目录内容: {os.listdir(cache_dir)}" if os.path.exists(cache_dir) and os.listdir(cache_dir) else "目录为空")
    
    print("Matplotlib字体缓存构建完成")
    return 0

if __name__ == "__main__":
    sys.exit(main()) 